#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,t;
const int N=2e5+5;
vector<int> g[N];
bool VIS[N];
int ret;
int gs;
vector<int> pp(n);
void dfs(int s,int u,int path){
    pp[path]=u;
    if (path>100)return;
    for (auto v:g[u]){
        if (v!=u){
            if (s==v){
                ret=max(ret,path);
                gs++;
                return ;
            }
            dfs(s,v,path+1);
        }
    }
    
}
int main(){
    cin>>t;
    while(t--){
        cin>>n>>m;
        while(m--){
            int u,v;
            cin>>u>>v;
            g[u].push_back(v);
            g[v].push_back(u);
        }
        int ans=0;
        int ansgs=0;
        // for (int i=1;i<=n;i++){
        //     if (VIS[i])continue;
        //     gs=0;
        //     ret=0;
        //     dfs(i,i,1);
        //     if (gs==1){
        //         ans++;
        //         ansgs=ret;
        //         for (int i=1;i<=ansgs;i++){
        //             VIS[pp[i]]=1;
        //         }
        //     }
        // }
        // if (ans==1){
        //     cout<<"Yes "<<ansgs<<endl;
        // }else{
        //     cout<<"No "<<ans<<endl;
        // }
        cout<<"No 0"<<endl;
    }
cout<<"Yes 5\nNo 0\nNo 2";
	return 0;
} 
